
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 08/13/2012 22:25:45
-- Generated from EDMX file: D:\Documentos\Visual Studio 2010\Projects\Controller2\Controller2\Models\ControllerBDModel.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [ControllerBD];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_CidadeEstado]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Cidade] DROP CONSTRAINT [FK_CidadeEstado];
GO
IF OBJECT_ID(N'[dbo].[FK_JobCliente]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Job] DROP CONSTRAINT [FK_JobCliente];
GO
IF OBJECT_ID(N'[dbo].[FK_JobFuncionario]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Job] DROP CONSTRAINT [FK_JobFuncionario];
GO
IF OBJECT_ID(N'[dbo].[FK_JobPessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Job] DROP CONSTRAINT [FK_JobPessoa];
GO
IF OBJECT_ID(N'[dbo].[FK_CampanhaCliente]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Campanha] DROP CONSTRAINT [FK_CampanhaCliente];
GO
IF OBJECT_ID(N'[dbo].[FK_JobCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Job] DROP CONSTRAINT [FK_JobCampanha];
GO
IF OBJECT_ID(N'[dbo].[FK_MidiaVeiculo]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Midia] DROP CONSTRAINT [FK_MidiaVeiculo];
GO
IF OBJECT_ID(N'[dbo].[FK_BriefingCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Briefing] DROP CONSTRAINT [FK_BriefingCampanha];
GO
IF OBJECT_ID(N'[dbo].[FK_Brainstorm_TopicoCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Brainstorm_Topico] DROP CONSTRAINT [FK_Brainstorm_TopicoCampanha];
GO
IF OBJECT_ID(N'[dbo].[FK_Brainstorm_MensagemBrainstorm_Topico]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Brainstorm_Mensagem] DROP CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Topico];
GO
IF OBJECT_ID(N'[dbo].[FK_MidiaEntrada]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Entrada] DROP CONSTRAINT [FK_MidiaEntrada];
GO
IF OBJECT_ID(N'[dbo].[FK_PessoaTipoPessoa_Pessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PessoaTipoPessoa] DROP CONSTRAINT [FK_PessoaTipoPessoa_Pessoa];
GO
IF OBJECT_ID(N'[dbo].[FK_PessoaTipoPessoa_TipoPessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PessoaTipoPessoa] DROP CONSTRAINT [FK_PessoaTipoPessoa_TipoPessoa];
GO
IF OBJECT_ID(N'[dbo].[FK_PessoaCidade]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pessoa] DROP CONSTRAINT [FK_PessoaCidade];
GO
IF OBJECT_ID(N'[dbo].[FK_JobMidia]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Job] DROP CONSTRAINT [FK_JobMidia];
GO
IF OBJECT_ID(N'[dbo].[FK_MidiaSaida]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Saida] DROP CONSTRAINT [FK_MidiaSaida];
GO
IF OBJECT_ID(N'[dbo].[FK_CidadeEmpresa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Empresa] DROP CONSTRAINT [FK_CidadeEmpresa];
GO
IF OBJECT_ID(N'[dbo].[FK_Brainstorm_MensagemBrainstorm_Mensagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Brainstorm_Mensagem] DROP CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Mensagem];
GO
IF OBJECT_ID(N'[dbo].[FK_Brainstorm_MensagemBrainstorm_Mensagem_Contagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ContagemPositivo] DROP CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Mensagem_Contagem];
GO
IF OBJECT_ID(N'[dbo].[FK_RelatorioTipoRelatorio]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Relatorio] DROP CONSTRAINT [FK_RelatorioTipoRelatorio];
GO
IF OBJECT_ID(N'[dbo].[FK_JobEntrada]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Entrada] DROP CONSTRAINT [FK_JobEntrada];
GO
IF OBJECT_ID(N'[dbo].[FK_PessoaSaida]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Saida] DROP CONSTRAINT [FK_PessoaSaida];
GO
IF OBJECT_ID(N'[dbo].[FK_CampanhaTipoCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Campanha] DROP CONSTRAINT [FK_CampanhaTipoCampanha];
GO
IF OBJECT_ID(N'[dbo].[FK_Pessoa_PF_inherits_Pessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pessoa_Pessoa_PF] DROP CONSTRAINT [FK_Pessoa_PF_inherits_Pessoa];
GO
IF OBJECT_ID(N'[dbo].[FK_Pessoa_PJ_inherits_Pessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pessoa_Pessoa_PJ] DROP CONSTRAINT [FK_Pessoa_PJ_inherits_Pessoa];
GO
IF OBJECT_ID(N'[dbo].[FK_Pessoa_Func_inherits_Pessoa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pessoa_Pessoa_Func] DROP CONSTRAINT [FK_Pessoa_Func_inherits_Pessoa];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Cidade]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Cidade];
GO
IF OBJECT_ID(N'[dbo].[Estado]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Estado];
GO
IF OBJECT_ID(N'[dbo].[Pessoa]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pessoa];
GO
IF OBJECT_ID(N'[dbo].[Midia]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Midia];
GO
IF OBJECT_ID(N'[dbo].[Job]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Job];
GO
IF OBJECT_ID(N'[dbo].[Veiculo]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Veiculo];
GO
IF OBJECT_ID(N'[dbo].[Campanha]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Campanha];
GO
IF OBJECT_ID(N'[dbo].[Briefing]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Briefing];
GO
IF OBJECT_ID(N'[dbo].[Brainstorm_Topico]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Brainstorm_Topico];
GO
IF OBJECT_ID(N'[dbo].[Brainstorm_Mensagem]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Brainstorm_Mensagem];
GO
IF OBJECT_ID(N'[dbo].[Entrada]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Entrada];
GO
IF OBJECT_ID(N'[dbo].[Saida]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Saida];
GO
IF OBJECT_ID(N'[dbo].[TipoPessoa]', 'U') IS NOT NULL
    DROP TABLE [dbo].[TipoPessoa];
GO
IF OBJECT_ID(N'[dbo].[Empresa]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Empresa];
GO
IF OBJECT_ID(N'[dbo].[ContagemPositivo]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ContagemPositivo];
GO
IF OBJECT_ID(N'[dbo].[Relatorio]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Relatorio];
GO
IF OBJECT_ID(N'[dbo].[TipoRelatorio]', 'U') IS NOT NULL
    DROP TABLE [dbo].[TipoRelatorio];
GO
IF OBJECT_ID(N'[dbo].[TipoCampanhaSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[TipoCampanhaSet];
GO
IF OBJECT_ID(N'[dbo].[Pessoa_Pessoa_PF]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pessoa_Pessoa_PF];
GO
IF OBJECT_ID(N'[dbo].[Pessoa_Pessoa_PJ]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pessoa_Pessoa_PJ];
GO
IF OBJECT_ID(N'[dbo].[Pessoa_Pessoa_Func]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pessoa_Pessoa_Func];
GO
IF OBJECT_ID(N'[dbo].[PessoaTipoPessoa]', 'U') IS NOT NULL
    DROP TABLE [dbo].[PessoaTipoPessoa];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Cidade'
CREATE TABLE [dbo].[Cidade] (
    [IdCidade] int IDENTITY(1,1) NOT NULL,
    [NomeCidade] nvarchar(150)  NOT NULL,
    [IdEstado] int  NOT NULL
);
GO

-- Creating table 'Estado'
CREATE TABLE [dbo].[Estado] (
    [IdEstado] int IDENTITY(1,1) NOT NULL,
    [NomeEstado] nvarchar(150)  NOT NULL,
    [Sigla] nvarchar(2)  NOT NULL
);
GO

-- Creating table 'Pessoa'
CREATE TABLE [dbo].[Pessoa] (
    [IdPessoa] int IDENTITY(1,1) NOT NULL,
    [NomePessoa] nvarchar(150)  NOT NULL,
    [Endereco] nvarchar(150)  NOT NULL,
    [NumEnd] int  NULL,
    [Bairro] nvarchar(150)  NULL,
    [CEP] nvarchar(9)  NOT NULL,
    [Site] nvarchar(100)  NULL,
    [Fone] nvarchar(14)  NOT NULL,
    [Email] nvarchar(100)  NOT NULL,
    [Twitter] nvarchar(100)  NULL,
    [Complemento] nvarchar(150)  NULL,
    [DataCadastro] datetime  NOT NULL,
    [UserName] nvarchar(15)  NULL,
    [IdCidade] int  NOT NULL
);
GO

-- Creating table 'Midia'
CREATE TABLE [dbo].[Midia] (
    [IdMidia] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(150)  NOT NULL,
    [Valor] decimal(8,4)  NOT NULL,
    [Descricao] nvarchar(500)  NULL,
    [IdVeiculo] int  NOT NULL,
    [DataPagamento] datetime  NULL,
    [PorcentagemBV] decimal(8,4)  NULL
);
GO

-- Creating table 'Job'
CREATE TABLE [dbo].[Job] (
    [IdJob] int IDENTITY(1,1) NOT NULL,
    [Descricao] nvarchar(1000)  NULL,
    [DataCadastro] datetime  NOT NULL,
    [DataInicio] datetime  NOT NULL,
    [DataConclusao] datetime  NOT NULL,
    [Status] int  NOT NULL,
    [IdCliente] int  NOT NULL,
    [IdFuncionario] int  NULL,
    [IdFreelancer] int  NULL,
    [IdCampanha] int  NOT NULL,
    [Etapa] int  NOT NULL,
    [IdMidia] int  NOT NULL,
    [GerarContaReceber] bit  NOT NULL
);
GO

-- Creating table 'Veiculo'
CREATE TABLE [dbo].[Veiculo] (
    [IdVeiculo] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(150)  NOT NULL,
    [Categoria] nvarchar(150)  NOT NULL
);
GO

-- Creating table 'Campanha'
CREATE TABLE [dbo].[Campanha] (
    [IdCampanha] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(150)  NOT NULL,
    [Descricao] nvarchar(1000)  NOT NULL,
    [DataInicio] datetime  NOT NULL,
    [DataFim] datetime  NOT NULL,
    [DataCadastro] datetime  NOT NULL,
    [IdCliente] int  NOT NULL,
    [IdTipoCampanha] int  NULL
);
GO

-- Creating table 'Briefing'
CREATE TABLE [dbo].[Briefing] (
    [IdBriefing] int IDENTITY(1,1) NOT NULL,
    [DataReuniao] datetime  NOT NULL,
    [Ata] nvarchar(max)  NOT NULL,
    [IdCampanha] int  NULL,
    [TipoBriefing] nvarchar(30)  NOT NULL
);
GO

-- Creating table 'Brainstorm_Topico'
CREATE TABLE [dbo].[Brainstorm_Topico] (
    [IdTopico] int IDENTITY(1,1) NOT NULL,
    [DataCadastro] datetime  NOT NULL,
    [Topico] nvarchar(100)  NOT NULL,
    [IdCampanha] int  NOT NULL,
    [UserName] nvarchar(15)  NULL
);
GO

-- Creating table 'Brainstorm_Mensagem'
CREATE TABLE [dbo].[Brainstorm_Mensagem] (
    [IdMensagem] int IDENTITY(1,1) NOT NULL,
    [DataCadastro] datetime  NOT NULL,
    [Mensagem] nvarchar(max)  NOT NULL,
    [IdTopico] int  NOT NULL,
    [UserName] nvarchar(15)  NOT NULL,
    [IdMensagemOrigem] int  NULL
);
GO

-- Creating table 'Entrada'
CREATE TABLE [dbo].[Entrada] (
    [IdEntrada] int IDENTITY(1,1) NOT NULL,
    [DataPrevista] datetime  NOT NULL,
    [DataRecebimento] datetime  NULL,
    [ValorPrevisto] decimal(8,4)  NOT NULL,
    [ValorRecebimento] decimal(8,4)  NULL,
    [IdMidia] int  NOT NULL,
    [Descricao] nvarchar(500)  NOT NULL,
    [Job_IdJob] int  NULL
);
GO

-- Creating table 'Saida'
CREATE TABLE [dbo].[Saida] (
    [IdSaida] int IDENTITY(1,1) NOT NULL,
    [DataPrevista] datetime  NOT NULL,
    [DataPagamento] datetime  NULL,
    [ValorPrevisto] decimal(8,4)  NOT NULL,
    [ValorPagamento] decimal(8,4)  NULL,
    [Descricao] nvarchar(500)  NOT NULL,
    [IdMidia] int  NULL,
    [IdFornecedor] int  NOT NULL
);
GO

-- Creating table 'TipoPessoa'
CREATE TABLE [dbo].[TipoPessoa] (
    [IdTipoPessoa] int IDENTITY(1,1) NOT NULL,
    [Tipo] nvarchar(50)  NOT NULL
);
GO

-- Creating table 'Empresa'
CREATE TABLE [dbo].[Empresa] (
    [IdEmpresa] int IDENTITY(1,1) NOT NULL,
    [NomeEmpresa] nvarchar(150)  NOT NULL,
    [Endereco] nvarchar(150)  NULL,
    [NumEnd] int  NULL,
    [Bairro] nvarchar(150)  NULL,
    [CEP] nvarchar(9)  NULL,
    [Site] nvarchar(100)  NULL,
    [Fone] nvarchar(14)  NULL,
    [Email] nvarchar(100)  NULL,
    [Twitter] nvarchar(100)  NULL,
    [Complemento] nvarchar(150)  NULL,
    [CNPJ] nvarchar(20)  NULL,
    [DataAbertura] datetime  NULL,
    [Fax] nvarchar(14)  NULL,
    [Ramal] int  NULL,
    [InscricaoEstadual] nvarchar(19)  NULL,
    [IdCidade] int  NOT NULL
);
GO

-- Creating table 'ContagemPositivo'
CREATE TABLE [dbo].[ContagemPositivo] (
    [IdContagemPositivo] int IDENTITY(1,1) NOT NULL,
    [Positivo] bit  NOT NULL,
    [Negativo] bit  NOT NULL,
    [Username] nvarchar(max)  NOT NULL,
    [IdMensagem] int  NOT NULL
);
GO

-- Creating table 'Relatorio'
CREATE TABLE [dbo].[Relatorio] (
    [IdRelatorio] uniqueidentifier  NOT NULL,
    [Nome] varchar(100)  NULL,
    [Binario] varbinary(max)  NULL,
    [DataAlteracao] datetime  NULL,
    [IdTipoRelatorio] int  NOT NULL
);
GO

-- Creating table 'TipoRelatorio'
CREATE TABLE [dbo].[TipoRelatorio] (
    [IdTipoRelatorio] int IDENTITY(1,1) NOT NULL,
    [Nome] varchar(100)  NULL
);
GO

-- Creating table 'TipoCampanhaSet'
CREATE TABLE [dbo].[TipoCampanhaSet] (
    [IdTipoCampanha] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(70)  NOT NULL
);
GO

-- Creating table 'Pessoa_Pessoa_PF'
CREATE TABLE [dbo].[Pessoa_Pessoa_PF] (
    [DataNascimento] datetime  NOT NULL,
    [Celular] nvarchar(14)  NULL,
    [RG] nvarchar(15)  NULL,
    [CPF] nvarchar(14)  NOT NULL,
    [Sexo] nvarchar(1)  NOT NULL,
    [IdPessoa] int  NOT NULL
);
GO

-- Creating table 'Pessoa_Pessoa_PJ'
CREATE TABLE [dbo].[Pessoa_Pessoa_PJ] (
    [Fax] nvarchar(14)  NULL,
    [Contato] nvarchar(50)  NULL,
    [EmailContato] nvarchar(100)  NULL,
    [RamalContato] int  NULL,
    [DataAbertura] datetime  NULL,
    [CNPJ] nvarchar(18)  NOT NULL,
    [InscricaoEstadual] nvarchar(20)  NULL,
    [Fornecedor] bit  NOT NULL,
    [IdPessoa] int  NOT NULL
);
GO

-- Creating table 'Pessoa_Pessoa_Func'
CREATE TABLE [dbo].[Pessoa_Pessoa_Func] (
    [Codigo] int IDENTITY(1,1) NOT NULL,
    [DataNascimento] datetime  NOT NULL,
    [RG] nvarchar(14)  NOT NULL,
    [CPF] nvarchar(15)  NOT NULL,
    [Sexo] nvarchar(1)  NOT NULL,
    [DataContratacao] datetime  NOT NULL,
    [DataDemissao] datetime  NULL,
    [CTPS] nvarchar(15)  NULL,
    [Funcao] nvarchar(50)  NOT NULL,
    [Salario] decimal(8,4)  NOT NULL,
    [Celular] nvarchar(14)  NULL,
    [IdPessoa] int  NOT NULL
);
GO

-- Creating table 'PessoaTipoPessoa'
CREATE TABLE [dbo].[PessoaTipoPessoa] (
    [Pessoa_IdPessoa] int  NOT NULL,
    [TipoPessoa_IdTipoPessoa] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [IdCidade] in table 'Cidade'
ALTER TABLE [dbo].[Cidade]
ADD CONSTRAINT [PK_Cidade]
    PRIMARY KEY CLUSTERED ([IdCidade] ASC);
GO

-- Creating primary key on [IdEstado] in table 'Estado'
ALTER TABLE [dbo].[Estado]
ADD CONSTRAINT [PK_Estado]
    PRIMARY KEY CLUSTERED ([IdEstado] ASC);
GO

-- Creating primary key on [IdPessoa] in table 'Pessoa'
ALTER TABLE [dbo].[Pessoa]
ADD CONSTRAINT [PK_Pessoa]
    PRIMARY KEY CLUSTERED ([IdPessoa] ASC);
GO

-- Creating primary key on [IdMidia] in table 'Midia'
ALTER TABLE [dbo].[Midia]
ADD CONSTRAINT [PK_Midia]
    PRIMARY KEY CLUSTERED ([IdMidia] ASC);
GO

-- Creating primary key on [IdJob] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [PK_Job]
    PRIMARY KEY CLUSTERED ([IdJob] ASC);
GO

-- Creating primary key on [IdVeiculo] in table 'Veiculo'
ALTER TABLE [dbo].[Veiculo]
ADD CONSTRAINT [PK_Veiculo]
    PRIMARY KEY CLUSTERED ([IdVeiculo] ASC);
GO

-- Creating primary key on [IdCampanha] in table 'Campanha'
ALTER TABLE [dbo].[Campanha]
ADD CONSTRAINT [PK_Campanha]
    PRIMARY KEY CLUSTERED ([IdCampanha] ASC);
GO

-- Creating primary key on [IdBriefing] in table 'Briefing'
ALTER TABLE [dbo].[Briefing]
ADD CONSTRAINT [PK_Briefing]
    PRIMARY KEY CLUSTERED ([IdBriefing] ASC);
GO

-- Creating primary key on [IdTopico] in table 'Brainstorm_Topico'
ALTER TABLE [dbo].[Brainstorm_Topico]
ADD CONSTRAINT [PK_Brainstorm_Topico]
    PRIMARY KEY CLUSTERED ([IdTopico] ASC);
GO

-- Creating primary key on [IdMensagem] in table 'Brainstorm_Mensagem'
ALTER TABLE [dbo].[Brainstorm_Mensagem]
ADD CONSTRAINT [PK_Brainstorm_Mensagem]
    PRIMARY KEY CLUSTERED ([IdMensagem] ASC);
GO

-- Creating primary key on [IdEntrada] in table 'Entrada'
ALTER TABLE [dbo].[Entrada]
ADD CONSTRAINT [PK_Entrada]
    PRIMARY KEY CLUSTERED ([IdEntrada] ASC);
GO

-- Creating primary key on [IdSaida] in table 'Saida'
ALTER TABLE [dbo].[Saida]
ADD CONSTRAINT [PK_Saida]
    PRIMARY KEY CLUSTERED ([IdSaida] ASC);
GO

-- Creating primary key on [IdTipoPessoa] in table 'TipoPessoa'
ALTER TABLE [dbo].[TipoPessoa]
ADD CONSTRAINT [PK_TipoPessoa]
    PRIMARY KEY CLUSTERED ([IdTipoPessoa] ASC);
GO

-- Creating primary key on [IdEmpresa] in table 'Empresa'
ALTER TABLE [dbo].[Empresa]
ADD CONSTRAINT [PK_Empresa]
    PRIMARY KEY CLUSTERED ([IdEmpresa] ASC);
GO

-- Creating primary key on [IdContagemPositivo] in table 'ContagemPositivo'
ALTER TABLE [dbo].[ContagemPositivo]
ADD CONSTRAINT [PK_ContagemPositivo]
    PRIMARY KEY CLUSTERED ([IdContagemPositivo] ASC);
GO

-- Creating primary key on [IdRelatorio] in table 'Relatorio'
ALTER TABLE [dbo].[Relatorio]
ADD CONSTRAINT [PK_Relatorio]
    PRIMARY KEY CLUSTERED ([IdRelatorio] ASC);
GO

-- Creating primary key on [IdTipoRelatorio] in table 'TipoRelatorio'
ALTER TABLE [dbo].[TipoRelatorio]
ADD CONSTRAINT [PK_TipoRelatorio]
    PRIMARY KEY CLUSTERED ([IdTipoRelatorio] ASC);
GO

-- Creating primary key on [IdTipoCampanha] in table 'TipoCampanhaSet'
ALTER TABLE [dbo].[TipoCampanhaSet]
ADD CONSTRAINT [PK_TipoCampanhaSet]
    PRIMARY KEY CLUSTERED ([IdTipoCampanha] ASC);
GO

-- Creating primary key on [IdPessoa] in table 'Pessoa_Pessoa_PF'
ALTER TABLE [dbo].[Pessoa_Pessoa_PF]
ADD CONSTRAINT [PK_Pessoa_Pessoa_PF]
    PRIMARY KEY CLUSTERED ([IdPessoa] ASC);
GO

-- Creating primary key on [IdPessoa] in table 'Pessoa_Pessoa_PJ'
ALTER TABLE [dbo].[Pessoa_Pessoa_PJ]
ADD CONSTRAINT [PK_Pessoa_Pessoa_PJ]
    PRIMARY KEY CLUSTERED ([IdPessoa] ASC);
GO

-- Creating primary key on [IdPessoa] in table 'Pessoa_Pessoa_Func'
ALTER TABLE [dbo].[Pessoa_Pessoa_Func]
ADD CONSTRAINT [PK_Pessoa_Pessoa_Func]
    PRIMARY KEY CLUSTERED ([IdPessoa] ASC);
GO

-- Creating primary key on [Pessoa_IdPessoa], [TipoPessoa_IdTipoPessoa] in table 'PessoaTipoPessoa'
ALTER TABLE [dbo].[PessoaTipoPessoa]
ADD CONSTRAINT [PK_PessoaTipoPessoa]
    PRIMARY KEY NONCLUSTERED ([Pessoa_IdPessoa], [TipoPessoa_IdTipoPessoa] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [IdEstado] in table 'Cidade'
ALTER TABLE [dbo].[Cidade]
ADD CONSTRAINT [FK_CidadeEstado]
    FOREIGN KEY ([IdEstado])
    REFERENCES [dbo].[Estado]
        ([IdEstado])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CidadeEstado'
CREATE INDEX [IX_FK_CidadeEstado]
ON [dbo].[Cidade]
    ([IdEstado]);
GO

-- Creating foreign key on [IdCliente] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [FK_JobCliente]
    FOREIGN KEY ([IdCliente])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobCliente'
CREATE INDEX [IX_FK_JobCliente]
ON [dbo].[Job]
    ([IdCliente]);
GO

-- Creating foreign key on [IdFuncionario] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [FK_JobFuncionario]
    FOREIGN KEY ([IdFuncionario])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobFuncionario'
CREATE INDEX [IX_FK_JobFuncionario]
ON [dbo].[Job]
    ([IdFuncionario]);
GO

-- Creating foreign key on [IdFreelancer] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [FK_JobPessoa]
    FOREIGN KEY ([IdFreelancer])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobPessoa'
CREATE INDEX [IX_FK_JobPessoa]
ON [dbo].[Job]
    ([IdFreelancer]);
GO

-- Creating foreign key on [IdCliente] in table 'Campanha'
ALTER TABLE [dbo].[Campanha]
ADD CONSTRAINT [FK_CampanhaCliente]
    FOREIGN KEY ([IdCliente])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CampanhaCliente'
CREATE INDEX [IX_FK_CampanhaCliente]
ON [dbo].[Campanha]
    ([IdCliente]);
GO

-- Creating foreign key on [IdCampanha] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [FK_JobCampanha]
    FOREIGN KEY ([IdCampanha])
    REFERENCES [dbo].[Campanha]
        ([IdCampanha])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobCampanha'
CREATE INDEX [IX_FK_JobCampanha]
ON [dbo].[Job]
    ([IdCampanha]);
GO

-- Creating foreign key on [IdVeiculo] in table 'Midia'
ALTER TABLE [dbo].[Midia]
ADD CONSTRAINT [FK_MidiaVeiculo]
    FOREIGN KEY ([IdVeiculo])
    REFERENCES [dbo].[Veiculo]
        ([IdVeiculo])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MidiaVeiculo'
CREATE INDEX [IX_FK_MidiaVeiculo]
ON [dbo].[Midia]
    ([IdVeiculo]);
GO

-- Creating foreign key on [IdCampanha] in table 'Briefing'
ALTER TABLE [dbo].[Briefing]
ADD CONSTRAINT [FK_BriefingCampanha]
    FOREIGN KEY ([IdCampanha])
    REFERENCES [dbo].[Campanha]
        ([IdCampanha])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_BriefingCampanha'
CREATE INDEX [IX_FK_BriefingCampanha]
ON [dbo].[Briefing]
    ([IdCampanha]);
GO

-- Creating foreign key on [IdCampanha] in table 'Brainstorm_Topico'
ALTER TABLE [dbo].[Brainstorm_Topico]
ADD CONSTRAINT [FK_Brainstorm_TopicoCampanha]
    FOREIGN KEY ([IdCampanha])
    REFERENCES [dbo].[Campanha]
        ([IdCampanha])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Brainstorm_TopicoCampanha'
CREATE INDEX [IX_FK_Brainstorm_TopicoCampanha]
ON [dbo].[Brainstorm_Topico]
    ([IdCampanha]);
GO

-- Creating foreign key on [IdTopico] in table 'Brainstorm_Mensagem'
ALTER TABLE [dbo].[Brainstorm_Mensagem]
ADD CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Topico]
    FOREIGN KEY ([IdTopico])
    REFERENCES [dbo].[Brainstorm_Topico]
        ([IdTopico])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Brainstorm_MensagemBrainstorm_Topico'
CREATE INDEX [IX_FK_Brainstorm_MensagemBrainstorm_Topico]
ON [dbo].[Brainstorm_Mensagem]
    ([IdTopico]);
GO

-- Creating foreign key on [IdMidia] in table 'Entrada'
ALTER TABLE [dbo].[Entrada]
ADD CONSTRAINT [FK_MidiaEntrada]
    FOREIGN KEY ([IdMidia])
    REFERENCES [dbo].[Midia]
        ([IdMidia])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MidiaEntrada'
CREATE INDEX [IX_FK_MidiaEntrada]
ON [dbo].[Entrada]
    ([IdMidia]);
GO

-- Creating foreign key on [Pessoa_IdPessoa] in table 'PessoaTipoPessoa'
ALTER TABLE [dbo].[PessoaTipoPessoa]
ADD CONSTRAINT [FK_PessoaTipoPessoa_Pessoa]
    FOREIGN KEY ([Pessoa_IdPessoa])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [TipoPessoa_IdTipoPessoa] in table 'PessoaTipoPessoa'
ALTER TABLE [dbo].[PessoaTipoPessoa]
ADD CONSTRAINT [FK_PessoaTipoPessoa_TipoPessoa]
    FOREIGN KEY ([TipoPessoa_IdTipoPessoa])
    REFERENCES [dbo].[TipoPessoa]
        ([IdTipoPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_PessoaTipoPessoa_TipoPessoa'
CREATE INDEX [IX_FK_PessoaTipoPessoa_TipoPessoa]
ON [dbo].[PessoaTipoPessoa]
    ([TipoPessoa_IdTipoPessoa]);
GO

-- Creating foreign key on [IdCidade] in table 'Pessoa'
ALTER TABLE [dbo].[Pessoa]
ADD CONSTRAINT [FK_PessoaCidade]
    FOREIGN KEY ([IdCidade])
    REFERENCES [dbo].[Cidade]
        ([IdCidade])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_PessoaCidade'
CREATE INDEX [IX_FK_PessoaCidade]
ON [dbo].[Pessoa]
    ([IdCidade]);
GO

-- Creating foreign key on [IdMidia] in table 'Job'
ALTER TABLE [dbo].[Job]
ADD CONSTRAINT [FK_JobMidia]
    FOREIGN KEY ([IdMidia])
    REFERENCES [dbo].[Midia]
        ([IdMidia])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobMidia'
CREATE INDEX [IX_FK_JobMidia]
ON [dbo].[Job]
    ([IdMidia]);
GO

-- Creating foreign key on [IdMidia] in table 'Saida'
ALTER TABLE [dbo].[Saida]
ADD CONSTRAINT [FK_MidiaSaida]
    FOREIGN KEY ([IdMidia])
    REFERENCES [dbo].[Midia]
        ([IdMidia])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MidiaSaida'
CREATE INDEX [IX_FK_MidiaSaida]
ON [dbo].[Saida]
    ([IdMidia]);
GO

-- Creating foreign key on [IdCidade] in table 'Empresa'
ALTER TABLE [dbo].[Empresa]
ADD CONSTRAINT [FK_CidadeEmpresa]
    FOREIGN KEY ([IdCidade])
    REFERENCES [dbo].[Cidade]
        ([IdCidade])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CidadeEmpresa'
CREATE INDEX [IX_FK_CidadeEmpresa]
ON [dbo].[Empresa]
    ([IdCidade]);
GO

-- Creating foreign key on [IdMensagemOrigem] in table 'Brainstorm_Mensagem'
ALTER TABLE [dbo].[Brainstorm_Mensagem]
ADD CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Mensagem]
    FOREIGN KEY ([IdMensagemOrigem])
    REFERENCES [dbo].[Brainstorm_Mensagem]
        ([IdMensagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Brainstorm_MensagemBrainstorm_Mensagem'
CREATE INDEX [IX_FK_Brainstorm_MensagemBrainstorm_Mensagem]
ON [dbo].[Brainstorm_Mensagem]
    ([IdMensagemOrigem]);
GO

-- Creating foreign key on [IdMensagem] in table 'ContagemPositivo'
ALTER TABLE [dbo].[ContagemPositivo]
ADD CONSTRAINT [FK_Brainstorm_MensagemBrainstorm_Mensagem_Contagem]
    FOREIGN KEY ([IdMensagem])
    REFERENCES [dbo].[Brainstorm_Mensagem]
        ([IdMensagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Brainstorm_MensagemBrainstorm_Mensagem_Contagem'
CREATE INDEX [IX_FK_Brainstorm_MensagemBrainstorm_Mensagem_Contagem]
ON [dbo].[ContagemPositivo]
    ([IdMensagem]);
GO

-- Creating foreign key on [IdTipoRelatorio] in table 'Relatorio'
ALTER TABLE [dbo].[Relatorio]
ADD CONSTRAINT [FK_RelatorioTipoRelatorio]
    FOREIGN KEY ([IdTipoRelatorio])
    REFERENCES [dbo].[TipoRelatorio]
        ([IdTipoRelatorio])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_RelatorioTipoRelatorio'
CREATE INDEX [IX_FK_RelatorioTipoRelatorio]
ON [dbo].[Relatorio]
    ([IdTipoRelatorio]);
GO

-- Creating foreign key on [Job_IdJob] in table 'Entrada'
ALTER TABLE [dbo].[Entrada]
ADD CONSTRAINT [FK_JobEntrada]
    FOREIGN KEY ([Job_IdJob])
    REFERENCES [dbo].[Job]
        ([IdJob])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_JobEntrada'
CREATE INDEX [IX_FK_JobEntrada]
ON [dbo].[Entrada]
    ([Job_IdJob]);
GO

-- Creating foreign key on [IdFornecedor] in table 'Saida'
ALTER TABLE [dbo].[Saida]
ADD CONSTRAINT [FK_PessoaSaida]
    FOREIGN KEY ([IdFornecedor])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_PessoaSaida'
CREATE INDEX [IX_FK_PessoaSaida]
ON [dbo].[Saida]
    ([IdFornecedor]);
GO

-- Creating foreign key on [IdTipoCampanha] in table 'Campanha'
ALTER TABLE [dbo].[Campanha]
ADD CONSTRAINT [FK_CampanhaTipoCampanha]
    FOREIGN KEY ([IdTipoCampanha])
    REFERENCES [dbo].[TipoCampanhaSet]
        ([IdTipoCampanha])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CampanhaTipoCampanha'
CREATE INDEX [IX_FK_CampanhaTipoCampanha]
ON [dbo].[Campanha]
    ([IdTipoCampanha]);
GO

-- Creating foreign key on [IdPessoa] in table 'Pessoa_Pessoa_PF'
ALTER TABLE [dbo].[Pessoa_Pessoa_PF]
ADD CONSTRAINT [FK_Pessoa_PF_inherits_Pessoa]
    FOREIGN KEY ([IdPessoa])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating foreign key on [IdPessoa] in table 'Pessoa_Pessoa_PJ'
ALTER TABLE [dbo].[Pessoa_Pessoa_PJ]
ADD CONSTRAINT [FK_Pessoa_PJ_inherits_Pessoa]
    FOREIGN KEY ([IdPessoa])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating foreign key on [IdPessoa] in table 'Pessoa_Pessoa_Func'
ALTER TABLE [dbo].[Pessoa_Pessoa_Func]
ADD CONSTRAINT [FK_Pessoa_Func_inherits_Pessoa]
    FOREIGN KEY ([IdPessoa])
    REFERENCES [dbo].[Pessoa]
        ([IdPessoa])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------